﻿var strDispName = []//存放字段信息
$(function () {
    
    var selectMenu = $(".wrapL i[class='inline-block posa']");
    for (var i = 0; i < selectMenu.length; i++) {
        var node = selectMenu[i].parentNode.parentNode.parentNode;
        while(node=node.previousSibling,node.nodeType!=1);
        var obj = node.nextElementSibling || node.nextSibling//获取下拉菜单节点
        $(node).children('i').removeClass('close');
        $(obj).removeClass('hidden');


    }


    //文字和图标时折叠展开菜单
    $(".wrapL dt span").click(function (e) {
        var node = e.target;
        while (node = node.nextSibling, node.nodeType != 1);
        menulist(node);
    });
    //$(".wrapL i[class='inline-block vam close']").click(function (e) {
    //    menulist(e.target);
    //})
    $("dt").css("cursor", "default");//普通图标
    $(".wrapL dt span").css("cursor", "pointer");//小手图标
    //$(".wrapL i[class='inline-block vam']").css("cursor", "pointer");

})


//设置字段js
//左侧全选
function leftCheckAll(e) {

    if ($(e).attr("checked") == "checked") {
        $(".wrapR-c-box-b-left input[type='checkbox']").each(function () {
            $(this).attr("checked", "checked");
        })
    }
    else {
        $(".wrapR-c-box-b-left input[type='checkbox']").each(function () {
            $(this).removeAttr("checked", "checked");
        })
    }
}
//右侧全选
function rightCheckAll(e) {
    if ($(e).attr("checked") == "checked") {
        $(".wrapR-c-box-b-right input[type='checkbox']").each(function () {
            $(this).attr("checked", "checked");
        })
    }
    else {
        $(".wrapR-c-box-b-right input[type='checkbox']").each(function () {
            $(this).removeAttr("checked", "checked");
        })
    }
    $(".f-gp input[type='text']").each(function () {
        $(this).val(""); //清空文本框的值
    })
}
//右侧删除
function deleteright() {
    var checkright = [];
    $('.wrapR-c-box-b-right ul input:checked').each(function () {
        checkright.push($(this).val());
    })
    if (checkright != "" && checkright.length > 0) { //选择的有数据
        confirmDialog('确定要删除吗?', function () {

            $('.wrapR-c-box-b-right ul input:checked').each(function () {
                //从隐藏域中去掉该值
                removeval($(this).parent().text());//获取文本值
                $(this).parent().parent().remove();//找到li元素移除
            })
            $('.wrapR-c-box-b-right input').removeAttr("checked", "checked");

            $(".f-gp input[type='text']").each(function () {
                $(this).val(""); //清空文本框的值
            })
        })

    }
    else {
        messageAlert("请在右侧选择要删除的数据项！");
    }
}

//$(".wrapR-c-box-b-right input[type='checkbox']").click(function (e) {
//    inputclickright(e);
//})


function jumpPage(urlstr) {
    var dataobj = { "DbID": $("#DbID").val() };
    ajaxLoad("initload", urlstr, dataobj);
}
//折叠展开菜单
function menulist(e) {
    
    var index = $(".wrapL dt i").index(e);
    var objList = [];
    var tmpDD = $(".wrapL dt i");
    for (var i = 0; i < tmpDD.length; i++)
    {
        var node = tmpDD[i].parentNode;
        var obj = node.nextElementSibling || node.nextSibling//获取下拉菜单节点
        if (index == i)
        {
            $(node).children('i').removeClass('close');
            $(obj).removeClass('hidden');
        }
        else
        {
            $(node).children('i').addClass('close');
            $(obj).addClass('hidden');
        }
    }
    //while (tmpDD.length > 0) {
    //    objList.push(tmpDD);
    //    tmpDD = tmpDD.next();
    //}
    //var display = $(objList[0]).css('display');
    //if (display == 'none') {
    //    $("#mymenu dd").hide();
    //    $(objList).each(function () {
    //        $(this).show();
    //    });
    //} else {
    //    $(objList).each(function () {
    //        $(this).hide();
    //    });
    //}


    //var node = e.target.parentNode;
    //var obj = node.nextElementSibling || node.nextSibling//获取下拉菜单节点
    //if ($(obj).hasClass("hidden")) {
    //    $(node).children('i').addClass('close');
    //    $(obj).removeClass('hidden');
    //}
    //else {
    //    $(obj).addClass('hidden');
    //    $(node).children('i').removeClass('close');
    //}
}
//菜单单击事件，异步加载右侧部分
function ajaxLoad(e, strurl, datastr) {
    if (e != "initload") {
        //移除原有样式
        $(".wrapL a[class='cur']").removeClass("cur");
        $(".wrapL i[class='inline-block posa']").remove();
        //$(".wrapL i[class='inline-block posa']").removeClass("inline-block posa");
        //给当前点击对象加载样式
        $(e).attr("class", "cur");
        $(e).append("<i class='inline-block posa'></i>");
        $(e.parentNode).attr("class", "posr");
    }
    $.ajax({
        type: "GET",
        async: true,
        url: timestamp(strurl),
        data: datastr,
        beforeSend: function () { $(".wrapR").html(""); $("#loading").show(); },
        success: function (msg) {
            $(".wrapR").html("");
            $(".wrapR").html(msg);
            $("#loading").hide();
        },
        error: function (e)
        { $("#loading").hide(); }
    })

}


//移动数据

//移动
function rightMove(sourceobj, distinctobj) {
    var checked = [];
    $(sourceobj + " ul input:checked").each(function () {
        checked.push($(this).val());
    })
    if (checked != "" && checked.length > 0) { //选择的有数据
        var messagestr = [];
        $(sourceobj + " ul input:checked").each(function () {
            //var objvalue = $(this).val();
            var objvalue = $.trim($(this).parent().text());
            var m = 1;
            $(distinctobj + " ul input").each(function () {
                if (objvalue == $.trim($(this).parent().text())) {
                    //已存在右侧
                    m = 0;
                    messagestr.push($.trim($(this).parent().text()));//获取label显示的文本值
                }
            })
            if (m == 1) {
                //将左侧数据拷贝到右侧
                var obj = $(this).parent().parent();//获取整个Li
                var rightobj = obj.clone();
                rightobj.find("input").attr("class", "f-checkboxR");
                rightobj.find("input").removeAttr("onclick");
                rightclick(rightobj);//加单击事件
                $(distinctobj + " ul").append(rightobj);//克隆一个移到右边
                //$('.wrapR-c-box-b-right ul').append(obj);//移到右边
                $(sourceobj + " input").removeAttr("checked", "checked");//清空选择
                $(distinctobj + " input").removeAttr("checked", "checked");

            }
        })
        if (messagestr != "") { //选中的数据在右侧已存在,最后只提示，不做操作限制
            messageAlert(messagestr + "  已存在!");
        }
        $(sourceobj + " input").removeAttr("checked", "checked");//清空选择

    }
    else {
        messageAlert("请在左侧选择要移动的数据项!");
    }
}
//将左侧数据拷贝到右侧
//function rightMoveData(sourceobj, distinctobj) {
//    $(sourceobj + " ul input:checked").each(function () {

//        var obj = $(this).parent().parent();//获取整个Li
//        var rightobj = obj.clone();
//        rightobj.find("input").attr("class", "f-checkboxR");
//        rightobj.find("input").removeAttr("onclick");
//        rightclick(rightobj);//加单击事件
//        $(distinctobj + " ul").append(rightobj);//克隆一个移到右边
//        //$('.wrapR-c-box-b-right ul').append(obj);//移到右边
//        $(sourceobj + " input").removeAttr("checked", "checked");//清空选择
//        $(distinctobj + " input").removeAttr("checked", "checked");
//    })

//}
//选中的数据在右侧已存在
function isExitsRight(sourceobj, distinctobj) {
    var messagestr = [];
    $(sourceobj + " ul input:checked").each(function () {
        var objvalue = $(this).val();
        $(distinctobj + " ul input").each(function () {
            if (objvalue == $(this).val()) {
                messagestr.push($.trim($(this).parent().text()));//获取label显示的文本值
            }
        })
    })
    return messagestr;
}

//右侧点击删除时，将strDispName中对应的值移除
function removeval(delstr) {
    if (strDispName != null && strDispName.length > 0) {
        for (var i = 0; i < strDispName.length; i++) {
            if ($.trim(strDispName[i].name) == $.trim(delstr)) {//判断是否设置过
                strDispName.splice(i, 1);
            }
        }
    }
}
//获取显示名称
function getdispname(name) {
    var dispn = name + "#";//显示名称#显示宽度   默认值
    if (name == "SYS_FLD_DOWNLOADRATE") {
        dispn = "下载量#";//显示名称#显示宽度  默认值
    }
    else if (name == "SYS_FLD_BROWSERATE") {
        dispn = "浏览量#";//显示名称#显示宽度 默认值
    }
    else if (name == "SYS_FLD_SYSID") {
        dispn = "记录号#";//显示名称#显示宽度 默认值
    }
    if (strDispName != null && strDispName.length > 0) {
        for (var i = 0; i < strDispName.length; i++) {
            if ($.trim(strDispName[i].name) == $.trim(name)) {//判断是否设置过
                dispn = strDispName[i].displayname + "#" + strDispName[i].displaywidth;
                break;
            }
        }
    }
    return dispn;
}
//获取显示宽度
function checkwidth() {
    var sum = 0;
    if (strDispName != null && strDispName.length > 0) {
        for (var i = 0; i < strDispName.length; i++) {
            sum = sum + parseInt(strDispName[i].displaywidth);
        }
    }
    return parseInt(sum);
}

//往左侧添加数据时，加上点击事件
function rightclick(rightobj) {

    rightobj.click(function (e) {
        inputclickright(e.target);
    });
}

function dealchecked(checkedsub, checkedparent) {
    var m = 0;
    $(checkedsub).each(function () {
        if ($(this).attr("checked") != "checked") {  //遍历判断是否存在没有选中的记录
            m = 1;
        }
    })
    if (m == 1) {
        $(checkedparent).removeAttr("checked", "checked");
    }
    else {
        $(checkedparent).attr("checked", "checked");
    }
}
//左侧勾选
function leftcheck(e) {
    //循环判断列表中的checkbox，如果全部选中则全选框呈勾选状态
    if ($(e).attr("checked") != "checked") {
        $(".f-checkbox-left").removeAttr("checked", "checked");
    }
    else {
        dealchecked(".f-checkboxL", ".f-checkbox-left");
    }

}
//右侧点选
function inputclickright(e) {
    var str = "";
    var disp = "";
    var dispwidth = "";
    var strvalue = "";
    //if (e.checked == true) {
    str = $.trim($(e.parentNode).text());//获取文本值
    strvalue = $(e).val();
    disp = str;
    if (strDispName != null && strDispName.length > 0) {//判断是否设置过
        for (var i = 0; i < strDispName.length; i++) {
            if ($.trim(strDispName[i].name) == $.trim(strvalue)) {
                disp = strDispName[i].displayname;
                dispwidth = strDispName[i].displaywidth;
                break;
            }
        }
    }
    //}
    if (str != "on" && disp != "on") {
        $("#realname").val(strvalue);//保存时用
        $("#displayname").val(disp);
        $("#displaywidth").val(dispwidth);
        $("#rewritename").val(str);//只做显示用
    }
    //循环判断列表中的checkbox，如果全部选中则全选框呈勾选状态
    if ($(e).attr("checked") != "checked") {
        $(".f-checkbox-right").removeAttr("checked", "checked");
    }
    else {
        dealchecked(".f-checkboxR", ".f-checkbox-right");
    }

}
//保存显示名称
function saveDispName() {
    var name = $("#realname").val();
    var dispname = $("#displayname").val();
    var dispwidth = $("#displaywidth").val(); //宽度
    if (name == "" || $.trim(dispname) == "" || $.trim(dispname) == " ") {
        messageAlert("请选择要设置显示名字段，并输入显示名！");
    }
    else {
        if ($("#displaywidth").css("display") != "none" && dispwidth != "" && !regnum(dispwidth)) {
            messageAlert("请输入宽度(正整数)！");
            return;
        }

        if (!regtext(dispname)) {
            messageAlert("请输入显示名(不允许输入特殊字符)！");
            return;
        }
        //先判断是否设置过，如果设置过直接更新值；
        var m = 0;
        if (strDispName != null && strDispName.length > 0) {

            for (var i = 0; i < strDispName.length; i++) {
                if ($.trim(strDispName[i].name) == $.trim(name)) {//判断是否设置过
                    strDispName[i].displayname = $.trim(dispname);
                    strDispName[i].displaywidth = dispwidth;
                    m = 1;
                    break;
                }
            }
        }
        if (m == 0) {
            var strname = {
                "name": name,
                "displayname": $.trim(dispname),
                "displaywidth": dispwidth
            }
            strDispName.push(strname);
        }
        messageAlert("保存成功！");
    }
}
//浏览器缓存
function timestamp(url) {
    var getTimestamp = new Date().getTime();
    if (url.indexOf("?") > -1) {
        url = url + "&t=" + getTimestamp
    } else {
        url = url + "?t=" + getTimestamp
    }
    return url;
}
function regusername(value) {
    var reg = /^[0-9a-zA-Z_]+$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
function regtext(value) {
    var reg = /^[^~@#$%^&*<>'"+-]+$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
function regtextsql(value) {
    var reg = /^[^~@$^&<>"]+$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
function regtel(value) {
    var reg = /^[0-9-()（）]{0,11}$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
function regpostcode(value) {
    var reg = /^\d{0,6}$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
function regemail(value) {
    var reg = /^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}

function regurl(value) {
    var reg = /^^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
//正整数
function regnum(value) {
    var reg = /^[1-9]\d*$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
//正整数和0
function regnum0(value) {
    var reg = /^(0|[1-9]\d*)$/;
    if (value != "" && !reg.test(value)) {
        return false;
    }
    else {
        return true;
    }
}
//操作提示框
function confirmDialog(msg, callback) {
    $("#dialog-confirm").html("<p style='padding:20px' class='message'>" + msg + "</p>");
    $("#dialog-confirm").dialog({
        resizable: false,
        modal: true,
        height: 200,
        //open: function (event, ui) {
        //    $(".ui-dialog-titlebar-close", $(this).parent()).hide();
        //}, //去掉关闭按钮
        buttons: {
            '确认': function () {
                callback.call();
                $(this).dialog('close');
            },
            '取消': function () {
                $(this).dialog('close');
            }
        }
    });
}
//消息框
function messageAlert(msg) {
    $("#dialog-message").html("<p style='padding:20px' class='message'>" + msg + "</p>");
    $("#dialog-message").dialog({
        modal: true,
        height: 200,
        resizable: false,
        buttons: {
            '确认': function () {
                $(this).dialog("close");
            }
        }
    });
}

function validateIP(ipvalue) {
    var reg = /^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$/;
    if (reg.test(ipvalue))
        return true;
    else
        return false;
}



